from rest_framework import viewsets

from BYD_ERP.utils.base_views import MultipleDestroyMixin, MultipleOpenMixin
from BYD_ERP.utils.pagination import GlobalPagination
from goods_info.models import SectionModel
from goods_info.serializer.section_serializer import SectionSerializer


class SectionView(viewsets.ModelViewSet, MultipleDestroyMixin, MultipleOpenMixin):
    """
        create:
        货品（存货档案）断面/截面--新增

        货品（存货档案）断面/截面新增，status：201（成功），return：新增货品（存货档案）断面/截面

        destroy:
        货品（存货档案）断面/截面--删除

        货品（存货档案）断面/截面删除，status：204（成功），return：None

        multiple_delete:
        货品（存货档案）断面/截面--批量删除，必传参数：ids=[1,2,3,4……]

        货品（存货档案）断面/截面批量删除，status：204（成功），return：None

        multiple_open:
        货品（存货档案）断面/截面--批量启用或者禁用，必传（json）参数：ids=[1,2,3,4……]（列表中可以只有一个参数），is_open=1/0

        {
            "ids": [1,2],
            "is_open": "0"
        }
        is_open=1表示禁用，is_open=0表示启用
        货品（存货档案）断面/截面批量启用或者禁用，status：204（成功），return：None

        update:
        货品（存货档案）断面/截面--修改

        货品（存货档案）断面/截面修改，status：200（成功），return：修改后的货品（存货档案）断面/截面

        partial_update:
        货品（存货档案）断面/截面--局部修改，可以传任意属性的值，服务器会修改指定的属性值

        货品（存货档案）断面/截面局部修改，status：200（成功），return：修改后的货品（存货档案）断面/截面

        list: 查询所有的顶级类别
        货品（存货档案）断面/截面--获取分页列表，可选get请求参数：pid，如果没有传则查询顶级类别，否则查询指定pid下的子类别

        货品（存货档案）断面/截面列表信息，status：200（成功），return：货品（存货档案）断面/截面列表

        retrieve:
        查询货品（存货档案）的某一个断面/截面

        查询货品（存货档案）指定ID的断面/截面，status：200（成功），return：货品（存货档案）指定的断面/截面

    """
    queryset = SectionModel.objects.all()
    serializer_class = SectionSerializer
    pagination_class = GlobalPagination

